#ifndef __DKGL_MAIN_WIN32_H__
#define __DKGL_MAIN_WIN32_H__

#include <windows.h>
#include <OIS.h>

namespace DKGL
{
	class DKGLMainImpl
	{
	public:

		DKGLMainImpl();

		~DKGLMainImpl();

		void registerKeyboardHandler(OIS::KeyListener* key);
		void registerMouseHandler(OIS::MouseListener* mouse);

		void go();

	private:

		void constructW32Window();
		void enableOpenGL();
		void disableOpenGL();

		void initOIS();
		void destroyOIS();

		static LRESULT CALLBACK StaticWndProc(HWND, UINT, WPARAM, LPARAM);
		LRESULT WndProc(HWND, UINT, WPARAM, LPARAM);

		HGLRC	_hGLRC;
		HWND	_hWnd;
		HDC		_hDC;

		// OIS
		OIS::InputManager*	_inputManager;
		OIS::Keyboard*		_keyboard;
		OIS::Mouse*			_mouse;
	};
}

#endif